Implement "cargo init"
authorVitaly _Vi Shukela <vi0oss@gmail.com>
Sat, 23 Jan 2016 12:48:59 +0000 (15:48 +0300)
committerVitaly _Vi Shukela <vi0oss@gmail.com>
Sat, 23 Jan 2016 12:48:59 +0000 (15:48 +0300)
commit800172fbe713670edab4d8c486b2e1e67d3a1038
tree43e9ce322c4bca876ede272c3e6177f03d5c64ed
parent1a929a12a76269d54febc9aefdb5bc133d737503
Implement "cargo init"

When non-existing directory is provided as argument, it
works just like "cargo new".

When existing directory is used, it may also create template
source file like "cargo new" or may find and use existing
source code for Cargo.toml.

Squashed commit of the following:

    cargo init: Supply USER envvar for one test
    cargo init: Other message when Cargo.toml already exists
    cargo init: Resolve conflict after with #2257
    fix minor issues
    cargo new/init: Simplify error handling code in entry points
    cargo new/init: Better message for invalid characters in name
    cargo init: fix minor issues in test
    cargo init: Avoid excessive builds in the test
    cargo init: minor fixes
    cargo init: Skip no_filename test on Windows
    cargo init: Implement better error message for bin name clash
    cargo init: minor fixes
    cargo init: handle "/" path
    cargo init: Actualise
    cargo new: Fix upper case error message in test
    cargo init: Remove paths::{file,directory}_already_exists
    fix uppper-case error messages
    cargo init: Fix minor issues per diff comments
    cargo init: Change binary handling
    cargo init: Move multiple lib error detection away from mk
    cargo init: Support optional path argument
    cargo init: Fix minor issues per Github comments
    cargo init: Fix complaint from tests/check-style.sh
    cargo init: Handle projects with multiple mains
    cargo init: Major refactor, multi-target projects
    cargo init: Add Cargo.lock unconditionally
    cargo init: Fix complains from tests/check-style.sh
    cargo init: Tests for handling VCS
    cargo init: Handle VCS
    cargo init: work in progress
    cargo init: Deduplicate some things between new and init
    cargo init: Auto-detection of --bin
    cargo init: work in progress...
    cargo init: Fix tests and allow explicit --vcs
    cargo init: intermediate refactor
    cargo init: First sketch of implementation
    cargo init: Preliminary test
    cargo init: first stub

See
https://github.com/vi/cargo/tree/cargo_init_unsquashed
for individual commits
src/bin/cargo.rs
src/bin/init.rs [new file with mode: 0644]
src/cargo/ops/cargo_new.rs
src/cargo/ops/mod.rs
src/cargo/util/paths.rs
tests/test_cargo_init.rs [new file with mode: 0644]
tests/test_cargo_new.rs
tests/tests.rs